{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### matplotlib 画曼德博集\n",
    "\n",
    "- NumPy 是 Python 语言的一个扩展程序库，支持大量的维度数组与矩阵运算，此外也针对数组运算提供大量的数学函数库。\n",
    "- Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[0]\n",
      " [1]\n",
      " [2]\n",
      " [3]\n",
      " [4]\n",
      " [5]\n",
      " [6]\n",
      " [7]\n",
      " [8]\n",
      " [9]]\n",
      "[[0 2 4 6 8]]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "# ogrid用切片作为下标，返回的是一组可用来广播计算的数组。其切片下标有如下形式\n",
    "# 不设置步长默认为一  [ 开始值：结束值：步长 ]\n",
    "x,y = np.ogrid[0:10,0:10:2]\n",
    "# x,y=np.ogrid[1:4:3j,1:5:2j]\n",
    "# x,y=np.ogrid[-2:2:20j,-2:2:20j]\n",
    "# y,x=np.ogrid[-1.4:1.4:400*1j,-2:0.8:400*1j]\n",
    "print(x)\n",
    "print(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[0 0 0 ... 0 0 0]\n",
      " [0 0 0 ... 0 0 0]\n",
      " [0 0 0 ... 0 0 0]\n",
      " ...\n",
      " [0 0 0 ... 0 0 0]\n",
      " [0 0 0 ... 0 0 0]\n",
      " [0 0 0 ... 0 0 0]]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "y,x = np.ogrid[-1.4:1.4:400*1j,-2:0.8:400*1j]\n",
    "c = x+y*1j\n",
    "z = c \n",
    "# print(z.shape)   #返回数组的维度\n",
    "divtime=20+np.zeros(z.shape,dtype=int)  #返回给定形状和类型的新数组，并用零填充。\n",
    "print(divtime)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ True  True  True ...  True  True  True]\n",
      " [ True  True  True ...  True  True  True]\n",
      " [ True  True  True ...  True  True  True]\n",
      " ...\n",
      " [ True  True  True ...  True  True  True]\n",
      " [ True  True  True ...  True  True  True]\n",
      " [ True  True  True ...  True  True  True]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n",
      "[[False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " ...\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]\n",
      " [False False False ... False False False]]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt \n",
    "def mandelbrot(h,w,maxit=20):\n",
    "    y,x = np.ogrid[-1.4:1.4:h*1j,-2:0.8:w*1j]\n",
    "    c = x+y*1j\n",
    "    z = c \n",
    "    divtime = maxit + np.zeros(z.shape,dtype=int)\n",
    "    for i in range(maxit):\n",
    "        z = z**2 +c\n",
    "        diverge = z*np.conj(z) > 2**2\n",
    "        div_now = diverge & (divtime==maxit)\n",
    "        divtime[div_now] = i \n",
    "        z[diverge] = 2 \n",
    "    return divtime\n",
    " \n",
    "plt.imshow(mandelbrot(400,400))\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
